Parameters সহ Stored Procedure তৈরি গাইড ও নোট

Database Tutorials - টি-এসকিউএল (T-SQL) - Stored Procedures তৈরি এবং ব্যবহার
309

Stored Procedure একটি প্রি-কম্পাইলড T-SQL স্টেটমেন্টের সেট, যা SQL Server ডাটাবেসে সংরক্ষিত থাকে এবং পুনরায় ব্যবহার করা যায়। স্টোরড প্রসিডিউর ব্যবহারের মাধ্যমে SQL কোডের পুনঃব্যবহারযোগ্যতা এবং কার্যকারিতা বৃদ্ধি পায়।

Parameters সহ Stored Procedure তৈরি করার জন্য আপনাকে কিছু পদক্ষেপ অনুসরণ করতে হবে, যাতে স্টোরড প্রসিডিউরটি ডাইনামিকভাবে বিভিন্ন আর্গুমেন্ট গ্রহণ করে এবং কার্যক্রম সম্পাদন করতে পারে।


Stored Procedure তৈরি করার মূল Syntax

CREATE PROCEDURE ProcedureName
    @Parameter1 DataType,
    @Parameter2 DataType
AS
BEGIN
    -- SQL Statements
    -- Query using parameters
END;
  • ProcedureName: আপনার স্টোরড প্রসিডিউরের নাম।
  • @Parameter1, @Parameter2: এগুলি স্টোরড প্রসিডিউরের ইনপুট প্যারামিটার। @ চিহ্ন দিয়ে প্যারামিটারগুলো ডিফাইন করা হয়।
  • DataType: প্রতিটি প্যারামিটারের জন্য ডেটা টাইপ (যেমন INT, VARCHAR, DATE ইত্যাদি)।

Stored Procedure এর উদাহরণ

১. একটি সিম্পল Stored Procedure তৈরি করা (প্যারামিটার সহ)

ধরা যাক, আপনি একটি স্টোরড প্রসিডিউর তৈরি করতে চান যা একটি নির্দিষ্ট কর্মী আইডি (Employee ID) দিয়ে তাদের নাম এবং বয়স রিটার্ন করবে।

CREATE PROCEDURE GetEmployeeDetails
    @EmployeeID INT
AS
BEGIN
    SELECT Name, Age
    FROM Employees
    WHERE EmployeeID = @EmployeeID;
END;

এখানে:

  • @EmployeeID: একটি প্যারামিটার যা INT টাইপের।
  • স্টোরড প্রসিডিউরটি Employees টেবিল থেকে নির্দিষ্ট EmployeeID এর Name এবং Age রিটার্ন করবে।

Stored Procedure কল করা:

EXEC GetEmployeeDetails @EmployeeID = 101;

এটি EmployeeID = 101 এর তথ্য নির্বাচন করবে।


২. একাধিক প্যারামিটার সহ Stored Procedure

ধরা যাক, আপনি একটি স্টোরড প্রসিডিউর তৈরি করতে চান যা কর্মী ডিপার্টমেন্ট এবং বয়সের উপর ভিত্তি করে তাদের নাম রিটার্ন করবে। এখানে দুটি প্যারামিটার থাকবে — @Department এবং @MinAge

CREATE PROCEDURE GetEmployeesByDepartment
    @Department VARCHAR(50),
    @MinAge INT
AS
BEGIN
    SELECT Name
    FROM Employees
    WHERE Department = @Department
    AND Age >= @MinAge;
END;

এখানে:

  • @Department: কর্মীর ডিপার্টমেন্টের নাম (যেমন: "Sales", "HR" ইত্যাদি)।
  • @MinAge: একটি নির্দিষ্ট বয়স (কর্মী যাদের বয়স ঐ বয়সের সমান বা বড়)।

Stored Procedure কল করা:

EXEC GetEmployeesByDepartment @Department = 'Sales', @MinAge = 30;

এটি Sales ডিপার্টমেন্টের সকল কর্মীকে দেখাবে যাদের বয়স ৩০ এর বেশি।


প্যারামিটারগুলির জন্য ডিফল্ট মান নির্ধারণ

আপনি চাইলে প্যারামিটারগুলির জন্য ডিফল্ট মান (Default Value) নির্ধারণ করতে পারেন। এই ক্ষেত্রে, যখন আপনি স্টোরড প্রসিডিউরটি কল করবেন না, তখন ডিফল্ট মানটি ব্যবহার করা হবে।

CREATE PROCEDURE GetEmployeesByAge
    @MinAge INT = 18 -- ডিফল্ট মান 18
AS
BEGIN
    SELECT Name, Age
    FROM Employees
    WHERE Age >= @MinAge;
END;

Stored Procedure কল করা:

  • যদি আপনি প্যারামিটার প্রদান না করেন, তবে এটি @MinAge = 18 ব্যবহার করবে:

    EXEC GetEmployeesByAge;
    
  • যদি আপনি @MinAge প্রদান করেন, তবে এটি সেই মান ব্যবহার করবে:

    EXEC GetEmployeesByAge @MinAge = 25;
    

IN, OUT এবং INOUT প্যারামিটার

  • IN প্যারামিটার: এগুলি স্টোরড প্রসিডিউরে ডেটা ইনপুট করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, উপরে উল্লেখিত প্যারামিটারগুলির মতো।
  • OUT প্যারামিটার: এগুলি স্টোরড প্রসিডিউরের আউটপুট হিসেবে মান রিটার্ন করে।
  • INOUT প্যারামিটার: এটি ইনপুট এবং আউটপুট উভয় হিসেবে কাজ করে, মান পরিবর্তন করতে পারে।

OUT প্যারামিটার উদাহরণ:

CREATE PROCEDURE GetEmployeeCountByDepartment
    @Department VARCHAR(50),
    @EmployeeCount INT OUTPUT
AS
BEGIN
    SELECT @EmployeeCount = COUNT(*)
    FROM Employees
    WHERE Department = @Department;
END;

Stored Procedure কল করা:

DECLARE @Count INT;
EXEC GetEmployeeCountByDepartment @Department = 'HR', @EmployeeCount = @Count OUTPUT;
PRINT @Count;

এটি HR ডিপার্টমেন্টের কর্মীদের সংখ্যা আউটপুট হিসাবে রিটার্ন করবে।


সারাংশ

  • Stored Procedure হলো SQL স্টেটমেন্টের একটি সেট যা ডেটাবেসে সংরক্ষিত থাকে এবং পুনরায় ব্যবহার করা যায়।
  • Parameters সহ Stored Procedure ডাইনামিক ইনপুট প্রদান করতে সক্ষম হয়।
  • প্যারামিটারগুলি ব্যবহার করে আপনি SQL কোডকে আরও কাস্টমাইজড এবং পুনরায় ব্যবহারযোগ্য করতে পারেন।

এটি SQL Server-এ ডেটাবেস ব্যবস্থাপনার একটি শক্তিশালী পদ্ধতি।

Content added By
Promotion

Are you sure to start over?

Loading...